package com.hsgene.user.exception;

import com.hsgene.common.util.exception.ErrorCode;

/**
 * 用户服务相关错误码定义（code：10001 - 10999）
 *
 * @author wangbing
 * @version 1.0, 2018/7/4
 */
public enum UserErrorCode implements ErrorCode {

    /**
     * 用户已存在
     */
    USER_EXISTED(10001, "Error_Users_User_Existed", "用户已存在"),

    /**
     * 用户不存在
     */
    USER_NOT_EXISTED(10002, "Error_Users_User_Not_Existed", "用户不存在"),

    /**
     * 手机号码格式不正确
     */
    USER_PHONE_NOT_FORMAT(10003, "Error_Users_User_Phone_Not_Format", "手机号码格式不正确"),

    /**
     * 登录短信验证码错误
     */
    LOGIN_VERIFY_CODE_ERROR(10004, "Error_Users_Login_Verify_Code_Error", "登录短信验证码错误"),

    /**
     * 用户已被删除
     */
    USER_DELETED(10005, "Error_Users_User_Deleted", "用户已被删除"),

    /**
     * 用户已被禁用
     */
    USER_NOT_AVAILABLE(10006, "Error_Users_User_Not_Available", "用户已被禁用"),

    /**
     * 用户已离职
     */
    USER_QUIT_JOB(10007, "Error_Users_User_Quit_Job", "用户已离职"),

    /**
     * 账号名或密码错误
     */
    USER_NAME_OR_PASSWORD(10008, "Error_Users_User_Name_Or_Password", "账号名或密码错误"),

    /**
     * 用户未登录
     */
    USER_NOT_LOGIN(10010, "Error_Users_User_Not_Login", "用户未登录"),

    /**
     * 用户令牌已过期
     */
    USER_TOKEN_EXPIRED(10011, "Error_Users_User_Token_Expired", "用户令牌已过期"),

    /**
     * 用户在其它设备登录
     */
    USER_TOKEN_LOGGED_OTHER(10012, "Error_Users_User_Token_Logged_Other", "用户在其它设备登录"),

    /**
     * 用户令牌被刷新
     */
    USER_TOKEN_REFRESHED(10013, "Error_Users_User_Token_Refreshed", "用户令牌被刷新"),

    /**
     * 用户令牌未到刷新时间
     */
    USER_TOKEN_CANNOT_REFRESH(10014, "Error_Users_User_Token_Cannot_Refresh", "用户令牌未到刷新时间"),

    /**
     * 账号已存在
     */
    USER_NAME_EXISTED(10020, "Error_Users_User_Name_Existed", "账号已存在"),

    /**
     * 收货地址不存在
     */
    CONSIGN_ADDRESS_NOT_EXISTED(10030, "Error_Users_Consign_Address_Not_Existed", "收货地址不存在"),

    /**
     * 收货地址不存在
     */
    GOODS_COLLECTION_NOT_ONLINE(10031, "Error_Users_Goods_Collection_Not_Online", "收货地址不存在"),
    USER_ID_IS_NULL(10032, "User_Id_Is_Null", "用户ID为空"),
    USER_INFO_IS_NULL(10033, "User_Info_Is_Null", "用户信息为空"),

    WECHAT_RELATION_INFO_NOT_EXISTED(10034, "Error_Users_Wecht_Relation_Info_Not_existed", "微信关联信息不存在"),

    WECHAT_SESSION_KEY_EXPIRED(10035, "Error_Users_Wechat_Session_Key_Expired", "微信session_key已过期，请重新授权登录"),
    USER_MALL_ADDRESS_ID_IS_NULL(10036, "USER_MALL_ADDRESS_ID_IS_NULL", "收货/取样地址id为空"),

    FIRST_LOGIN_VERIFY(10037, "Error_Users_First_Login_Verify", "首次登录必须重置密码"),

    FIRST_LOGIN_VERIFY_ERROR(10038, "Error_Users_First_Login_Verify_Error", "用户首次登录才需要修改初始登录密码，或密码修改Token错误"),
    FIND_ADDRESS_INFO_BY_ID_IS_ERROR(10039, "FIND_ADDRESS_INFO_BY_ID_IS_ERROR", "根据id获取地服收货地址出错"),
    QUERY_GROUND_SERVANT_INFO_IS_ERROR(10040, "QUERY_GROUND_SERVANT_INFO_IS_ERROR", "根据条件查询地服信息出错"),

    PASSWORD_SAME(10050, "Error_Users_Password_Same", "新密码不能与原密码相同");

    /**
     * 错误码
     */
    private final int code;

    /**
     * 错误信息
     */
    private final String message;

    /**
     * 错误描述
     */
    private final String description;

    UserErrorCode(int code, String message, String description) {
        this.code = code;
        this.message = message;
        this.description = description;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

    @Override
    public String getDescription() {
        return description;
    }
}
